import store from '@/store'

export function hasPermission(permissionCode) {
  const permCodes = store.getters && store.getters.permCodes || []
  const userType = store.getters && store.getters.userType

  if (userType === -1) {
    return true
  }

  if (permissionCode.indexOf(',') >= 0) {
    const codes = permissionCode.split(',')
    for (const code of codes) {
      if (permCodes.indexOf(code) >= 0) {
        return true
      }
    }

    return false
  }

  return permCodes.indexOf(permissionCode) >= 0
}

/**
 * @param {Array} value
 * @returns {Boolean}
 * @example see @/views/permission/directive.vue
 */
export default function checkPermission(value) {
  if (value && value instanceof Array && value.length > 0) {
    const roles = store.getters && store.getters.roles
    const permissionRoles = value

    const hasPermission = roles.some(role => {
      return permissionRoles.includes(role)
    })

    if (!hasPermission) {
      return false
    }
    return true
  } else {
    console.error(`need roles! Like v-permission="['admin','editor']"`)
    return false
  }
}
